package com.lijiajia.cloud.authserver.service;

import com.lijiajia.cloud.authserver.pojo.mongodb.User;

import java.util.Optional;

/**
 * 用户服务
 *
 * @author lijiajia
 * @since 2019-3-28
 */
public interface UserService {

	/**
	 * 新增用户
	 *
	 * @param user 用户
	 * @return 用户
	 */
	User insert(User user);


	/**
	 * 获取用户信息
	 *
	 * @param id 用户id
	 * @return 用户信息
	 */
	Optional<User> findById(String id);

	/**
	 * 用户信息
	 *
	 * @param username 用户名
	 * @return 用户信息
	 */
	Optional<User> findByUsername(String username);

	/**
	 * 获取用户信息
	 *
	 * @param providerId oauth2提供商id
	 * @param openId     oauth2提供商openId
	 * @return 用户信息
	 */
	Optional<User> findByOpenId(String providerId, String openId);

}
